#ifndef FIELD_HPP
#define	FIELD_HPP

#include <iostream>
#include <vector>
#include <set>
#include <stdlib.h>
#include <string.h>

#include <log4cpp/Category.hh>
#include <log4cpp/FileAppender.hh>
#include <log4cpp/PatternLayout.hh>

#include "sudoku.hpp"
#include "random.hpp"

class Field;
class Sudoku;

/* --------------------------------------------------------------- */
class Field {
	public:
		Field(std::vector<int>);
		void addUnavailable(int);
		void addAvailable(int);
		bool setValue(int);
		int getValue();
		int* begin();
		int* end();
		int* getNext();
	private:
		std::vector<int> orderDefinition;
		std::set<int> availables;
		int value;
};
/* --------------------------------------------------------------- */
#endif
